package com.aabte.design2.structural.proxy;

import java.util.Collection;
import java.util.LinkedList;
import java.util.concurrent.TimeUnit;

/**
 * 服务连接器的具体实现。该类的方法可以向腾讯视频请求信息。请求速度取决于
 * 用户和腾讯视频的互联网连接情况。如果同时发送大量请求，即使所请求的信息
 * 一模一样，程序的速度依然会减慢。
 *
 * @author Daniel
 * @version 1.0
 * @date 2020/5/3
 */
public class ThirdPartyTV implements RemotePartyTVLib {

    private Collection<Video> mockVideos = new LinkedList<>();

    public ThirdPartyTV() {
        mockVideos.add(Video.builder().id(1).name("西虹市首富").build());
        mockVideos.add(Video.builder().id(2).name("飞驰人生").build());
    }

    @Override
    public Collection<Video> listVideos() {
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
        }
        return mockVideos;
    }

    @Override
    public Video getVideoInfo(int id) {
        for (Video video : mockVideos) {
            if (id == video.getId()) {
                return video;
            }
        }
        return null;
    }

    @Override
    public String downloadVideo(int id) {
        for (Video video : mockVideos) {
            if (id == video.getId()) {
                return video.getName() + "avi";
            }
        }
        return null;
    }
}
